• 一个抖动和弹窗的页面特效


    做一个通用式的弹窗:

    //加载jquery
    document.writeln("<script type="text/javascript" src="/js/jquery-1.7.2.min.js" charset="gb2312"></script>");
    
    //加载弹窗的样式
    document.writeln("<style type="text/css">");
    document.writeln("#qqshark_mid{287px; height: 158px; top: 250px; position: fixed; left: 448px; background-position: initial initial;display:none;z-index: 200;}");
    
    //注意z-index值弹窗层的值要比遮盖层的高一些,不然会被其遮住
    document.writeln(".swt_tcqq{position:absolute;z-index: 10002;}.leftexit{float:left;55px;height:31px;z-index: 10003;}");
    document.writeln(".swt_tchf{display:none;position:absolute;289px; height:54px; margin:170px 0 0 15px;}");
    document.writeln("#mcover {position: fixed;top: 0;left: 0; 100%;height: 100%;background: rgba(0, 0, 0, 0.7);display: none;z-index: 10000;}");
    document.writeln(".qqshark_swtDisplay{168px; height:527px;position:fixed;_position:absolute;display:none;right:2px;top:5px;}");
    document.writeln("</style>");
    document.writeln("<div id="qqshark_mid">");
    document.writeln("<div id="mcover" > </div>");
    
    //弹窗
    document.writeln(" <div class="swt_tcqq"><a style="55px; height:32px; top:0px; left:0px; position:absolute;" href="javascript:leftexit();" target="_self" title="关闭">...</a><a href="tel:0371-60325095" target="_blank"><img src="./手机站_files/20130701_bj.gif" border="0" usemap="#qqshark_MapTc" /></a>");
    document.writeln("</div>");
    document.writeln(" </div>");
    
    //是否被关闭
    var upprev_closed = true;
    
    function showtime(){
    $('#qqshark_mid').css('display', 'block');
    $('#mcover').css('display', 'block');
    play_click('sound.mp3');
    }
    function leftexit(){
      $('#qqshark_mid').css('display', 'none');
      $('#mcover').css('display', 'none');
      upprev_closed=!upprev_closed;
    }
    
    
    //最后执行
    $(function() {
      var a = $('#qqshark_mid').width();
    
      //$(window).width()取得页面可见部分的宽度
      var leftnum = ($(window).width() -a) / 2;
      var b = $('#qqshark_mid').height();
      var topnum = ($(window).height()-b ) / 2;
      $('#qqshark_mid').css('left', leftnum + 'px').css('top', topnum + 'px');
      setInterval(function(){
        if(upprev_closed){
        upprev_closed=!upprev_closed;
    
        //函数调用要写在匿名函数中
    
        setTimeout(function(){showtime()},4000)
        }
      },1000);
    
      $('#qqshark_mid').css('display', 'none');
    
    })

    jquery集成抖动效果:

    jQuery.fn.shake = function(intShakes /*Amount of shakes*/, intDistance /*Shake distance*/, intDuration /*Time duration*/) {
    this.each(function() {
    var jqNode = $(this);
    jqNode.css(
    {'position': 'fixed'}
    );
    for (var x=1; x<=intShakes; x++) {
    jqNode.animate({ right: "-="+(intDistance) },(((intDuration / intShakes) / 4)))
    .animate({ bottom: "-="+(intDistance) },(((intDuration / intShakes) / 4)))
    .animate({ right: "+="+intDistance*2 },((intDuration/intShakes)/2))
    .animate({ bottom: "+="+intDistance*2 },((intDuration/intShakes)/2))
    .animate({ right: "-="+(intDistance) },(((intDuration/intShakes)/4)))
    .animate({ bottom: "-="+(intDistance) },(((intDuration/intShakes)/4)));
    }
    });
    return this;

    用法:

         setInterval(function(){
                  $('#qqshark').shake(6,4,120);
                 },3000);

    这个效果在页面不为当前页的时候会积累抖动时间,不好用。

    推荐:

    function shake(){
        var a=['bottom','right'],b=0;
        var u=setInterval(function(){
            $('#qqshark').css( a[b%2] , (b++)%4<2?0:4 );
            if(b>17){
                clearInterval(u);
                b=0;
            }
         },30)
    }

    用法:

     setInterval(function(){
                
                 shake();
                 },3000);

    另外监视滚动:

     $(window).scroll(function() {
            
            if ($(".wzy_shangx").length > 0)
              lastScreen = getScrollY() + $(window).height() < $(".wzy_shangx").offset().top * 1 ? false : true;
            else
             lastScreen = getScrollY() + $(window).height() < $(document).height() * 1 ? false : true;
               if (lastScreen && !upprev_closed) {
               $('#mid').css('display', 'block');
            }
             });
    })

    计算页面滚动:

    function getScrollY() {
        scrOfY = 0;
      //pageYOffset:属于window对象,IE9+ 、firefox、chrome,opera均支持。另scrollY: 属于window对象,firefox、chrome,opera支持,IE不支持
    if( typeof( window.pageYOffset ) == "number" ) { scrOfY = window.pageYOffset;
      //页面如果未定义doctype文档头,所有的浏览器都支持document.body.scrollTop属性获取滚动高度。 }
    else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { scrOfY = document.body.scrollTop; } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { scrOfY = document.documentElement.scrollTop; } return scrOfY; }

    注:document.body是DOM中Document对象里的body节点, document.documentElement是文档对象根节点(html)的引用。 document.body.scrollHeight是body元素的滚动高度,document.documentElement.scrollHeight为页面的滚动高度,且 document.documentElement.scrollHeight在IE和Firefox下还有点小差异。

  • 相关阅读:
    【目录】循序渐进学.Net Core Web Api开发系列
    UML各种图总结-精华
    UML各种线的含义
    最新10大Python面试常问的问题,60%的人都不会
    Java—线程池ThreadPoolExecutor案例详解,高薪必备
    HashMap 的 7 种遍历方式与性能分析,高薪必学
    DelayQueue核心源码解析,Java面试必学
    Spring源码-循环依赖,Java架构师必学
    JAVA编程思想,去掉别扭的if,自注册策略模式优雅满足开闭原则,80%的人都不知道
    用Python实现植物大战僵尸游戏,很酷
  • 原文地址:https://www.cnblogs.com/wanglao/p/3540412.html
Copyright © 2020-2023  润新知