• JS特效 http://www.bjxfcs.com/js/
  • 如何利用JS特效代碼控制彈窗漂浮的效果

    發布日期:2019-01-30 08:38:00


    1、jsp頁面上彈出層的代碼
     

      本篇文章可是日常中的日常經典中的經典中的經典了,我相信很多人在運用操作JS時會利用它的特效代碼對于那些經常騷擾我們的彈窗還有漂浮效果的騷擾廣告進行手段性參與將它完完全全的控制在自己的手心里面了。

    <s:iterator value="lrVo" var="lrVo" id="lrVo" status="st"> 
    <div class="logisticscenter_xq" style="display: none;" id='<s:property value="#lrVo.logisticNO"/>'> 
    <dl> 
    <dt><strong><s:text name="struts.webui.logistics.label.logisticsDetails"/>:</strong></dt> 
    <dd><strong class="close_wind">X</strong></dd> 
    </dl> 
    <div class="information logistics_win"> 
    <table width="" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td class="r_text"><span class="icon9">*</span><s:text name="struts.webui.logistics.label.logisticsNumber"/>:</td> 
    <td></td> 
    <td colspan="3" id="logisticNo"><s:property value="#lrVo.logisticNO"/></td> 
    </tr> 
    <tr> 
    <td valign="top" class="r_text"><span class="icon9">*</span><s:text name="struts.webui.logistics.label.distribution"/>:</td> 
    <td></td> 
    <td colspan="3" style="text-align:left" id="content"><s:property value="#lrVo.content" escape="false"/></td> 
    </tr> 
    </table> 
    </div> 
    </div> 
    </s:iterator> 
    <!--物流詳情彈出窗口 end--> 
     
    層樣式代碼:
    .logisticscenter_xq{ 
    position: absolute; 
    width:710px; 
    border:solid 2px #787878; 
    background: #edfcfe; 
    z-index: 2; 
     
    我的處理時將彈出層放置到整個網站頁面的layout.jsp,網站中所有頁面的布局都繼承它。該網站采用tiles框架統一對頁面布局。
     
    2、計算對象居中要設置的left值和top值
     
    我把這一步要完成的功能寫成一個js文件,主要是根據用戶在一覽頁面上鼠標點擊的坐標位置,動態地顯示該條記錄的層窗口。主要代碼如下:
    代碼
    / 計算對象居中需要設置的left和top值 
    // 參數: 
    // _w - 對象的寬度 
    // _h - 對象的高度 
    function getLT(_w,_h) 
    var de = document.documentElement; 
    // 獲取當前瀏覽器窗口的寬度和高度 
    // 兼容寫法,可兼容ie,ff 
    var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; 
    var h = (de&&de.clientHeight) || document.body.clientHeight; 
    // 獲取當前滾動條的位置 
    // 兼容寫法,可兼容ie,ff 
    var st= (de&&de.scrollTop) || document.body.scrollTop; 
    var topp=0; 
    if(h>_h) 
    topp=(st+(h - _h)/2); 
    else
    topp=st; 
    var leftp = 0; 
    if(w>_w) 
    leftp = ((w - _w)/2); 
    // 左側距,頂部距 
    return [leftp,topp]; 
    //獲取鼠標位置GetPostion 
    function GetPostion(e) { 
    var x = getX(e); 
    var y = getY(e); 
    function getX(e) { 
    e = e || window.event; 
    return e.pageX || e.clientX + document.body.scrollLeft - document.body.clientLeft 
    function getY(e) { 
    e = e|| window.event; 
    return e.pageY || e.clientY + document.body.scrollTop - document.body.clientTop 
    //判斷瀏覽器類型 
    function getOs() 
    var OsObject = ""; 
    if(navigator.userAgent.indexOf("MSIE")>0) { 
    return "MSIE"; 
    if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ 
    return "Firefox"; 
    if(isSafari=navigator.userAgent.indexOf("Safari")>0) { 
    return "Safari"; 
    if(isCamino=navigator.userAgent.indexOf("Camino")>0){ 
    return "Camino"; 
    if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ 
    return "Gecko"; 
     
    將該js包含到主調用的一覽jsp文件中。
     
    1 <script language="javascript" type="text/javascript" src="<s:url value="/js/aligncenter.js"/>"></script> 
     
    3、一覽jsp中的調用方法
     
    1 <a class="view_button" onclick="viewLogistics(event,'<s:property value="#lrVo.logisticNO"/>')" href="####"><s:text name="struts.webui.logistics.label.view"/></a> 
     
    用戶點擊該行記錄的詳情鏈接時調用顯示層的方法,同時將該記錄的id值傳給調用方法。其實,每一個層就是用這條記錄的一個id屬性值進行區分的。
     
     
    function viewLogistics(event,logisticNO){ 
    var os = getOs(); 
    var y = getY(event); 
    if(os=='MSIE'){ 
    y=window.event.y+405; 
    $(".logisticscenter_xq").hide(); 
    $("#"+logisticNO).show(); 
    $("#"+logisticNO).css("top",y+15); 
     
    至于方法中event參數的作用,還不是太清楚,這點需要再調查一下。最終效果如下圖,隨著鼠標下移,層能夠動態的移動。
    <!-- 物流詳情彈出頁面 start --> 
      本篇文章在我們的網站里面還有很多類型相同的內容如果看完這篇文章以后你還是覺得不夠盡興不夠舒暢那么你可以到我們網站里搜索相關的其他資訊這對于你我都是非常有益而且還很實用的。
    • 專題推薦

    次元立方 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
    本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
    香港最快开奖现场直播结果