zoukankan      html  css  js  c++  java
  • 一个抖动和弹窗的页面特效

    做一个通用式的弹窗:

    //加载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下还有点小差异。

  • 相关阅读:
    Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用
    Linkerd 2.10(Step by Step)—多集群通信
    Linkerd 2.10(Step by Step)—使用 Kustomize 自定义 Linkerd 的配置
    Linkerd 2.10(Step by Step)—控制平面调试端点
    Linkerd 2.10(Step by Step)—配置超时
    Linkerd 2.10(Step by Step)—配置重试
    Linkerd 2.10(Step by Step)—配置代理并发
    本地正常运行,线上环境诡异异常原因集合
    Need to invoke method 'xxx' declared on target class 'yyy', but not found in any interface(s) of the exposed proxy type
    alpine 安装常用命令
  • 原文地址:https://www.cnblogs.com/wanglao/p/3540412.html
Copyright © 2011-2022 走看看