【问题标题】:Scrolling News Ticker Jquery - Issues滚动新闻代码 Jquery - 问题
【发布时间】:2014-01-03 23:38:53
【问题描述】:

原始来源和示例:

http://www.htmldrive.net/items/show/397/Vertical-Scrolling-News-Ticker-With-jQuery-jCarouse

你好!滚动新闻代码 Jquery 有一些问题:


第一个问题:Internet Explorer 错误消息

" 对象不支持此属性或方法" Line: 269: Line 269)

           ticker.mouseenter(function() {  //   <---Line: 269
          //stop current animation
          ticker.children().stop();

        });

  • 第二期:点击新闻选项(被定向到页面链接)的唯一方法是通过网站示例中为蓝色的文本标题。 我希望用户能够单击该选项的整个部分 还包括图片。

  • 第三期 :新闻滚动时看起来是一体的,有没有办法在每个部分添加一行。

  • 第四期:有没有办法在用户放鼠标时暂停自动滚动 超过一个部分?
  • 有没有办法在标题和类别下添加更多文本?

这里是带有 IE 问题的脚本本身在右侧用箭头突出显示 下面

   <script type="text/javascript">
      $(function() {

    //cache the ticker
    var ticker = $("#ticker");

    //wrap dt:dd pairs in divs
    ticker.children().filter("dt").each(function() {

      var dt = $(this),
        container = $("<div>");

      dt.next().appendTo(container);
      dt.prependTo(container);

      container.appendTo(ticker);
    });

    //hide the scrollbar
    ticker.css("overflow", "hidden");

    //animator function
    function animator(currentItem) {

      //work out new anim duration
      var distance = currentItem.height();
        duration = (distance + parseInt(currentItem.css("marginTop"))) / 0.020;

      //animate the first child of the ticker
      currentItem.animate({ marginTop: -distance }, duration, "linear", function() {

        //move current item to the bottom
        currentItem.appendTo(currentItem.parent()).css("marginTop", 0);

        //recurse
        animator(currentItem.parent().children(":first"));
      }); 
    };

    //start the ticker
    animator(ticker.children(":first"));

    //set mouseenter
     ticker.mouseenter(function() {


    ticker.mouseenter(function() {  //  <---Line: 269
      //stop current animation
      ticker.children().stop();

    });

    //set mouseleave
    ticker.mouseleave(function() {

            //resume animation
    animator(ticker.children(":first"));

    });
      });
    </script>

我会非常感激的!!

【问题讨论】:

    标签: javascript jquery scroll news-ticker


    【解决方案1】:

    要添加行以分隔每个项目,请将 border-bottom:1px solid black; 添加到 css。

    在阅读您的问题后,我想向您展示我在我的网站中使用的 javascript 方法,并在鼠标悬停时停止。

    <div id="marqueecontainer" onMouseover="copyspeed=pausespeed"  onMouseout="copyspeed=marqueespeed">
    <div id="vmarquee" style="position: absolute; width: 98%;">
    
     <!--YOUR SCROLL CONTENT HERE-->
    
     <!--YOUR SCROLL CONTENT HERE-->
    
     </div>
     </div><style type="text/css">
    
     #marqueecontainer{
     position: relative;
      width: 200px; /*marquee width */
     height: 200px; /*marquee height */
      background-color: white;
     overflow: hidden;
     border: 3px solid orange;
     padding: 2px;
     padding-left: 4px;
     }
    
     </style>
    <script type="text/javascript">
    
     var delayb4scroll=2000 //Specify initial delay before marquee starts to scroll on page (2000=2 seconds)
      var marqueespeed=2 //Specify marquee scroll speed (larger is faster 1-10)
      var pauseit=1 //Pause marquee onMousever (0=no. 1=yes)?
    
       var copyspeed=marqueespeed
       var pausespeed=(pauseit==0)? copyspeed: 0
       var actualheight=''
    
        function scrollmarquee(){
        if (parseInt(cross_marquee.style.top)>(actualheight*(-1)+8))
         cross_marquee.style.top=parseInt(cross_marquee.style.top)-copyspeed+"px" 
         else 
         cross_marquee.style.top=parseInt(marqueeheight)+8+"px"
         }
    
         function initializemarquee(){
          cross_marquee=document.getElementById("vmarquee")
           cross_marquee.style.top=0
           marqueeheight=document.getElementById("marqueecontainer").offsetHeight
           actualheight=cross_marquee.offsetHeight //height of marquee content (much of which is hidden from view)
             if (window.opera || navigator.userAgent.indexOf("Netscape/7")!=-1){ //if Opera or Netscape 7x, add scrollbars to scroll and exit
           cross_marquee.style.height=marqueeheight+"px"
          cross_marquee.style.overflow="scroll"
          return
           }
            setTimeout('lefttime=setInterval("scrollmarquee()",30)', delayb4scroll)
            }
    
         if (window.addEventListener)
          window.addEventListener("load", initializemarquee, false)
      else if (window.attachEvent)
         window.attachEvent("onload", initializemarquee)
       else if (document.getElementById)
         window.onload=initializemarquee
    
    
        </script>
    

    您可以在here查看演示

    【讨论】:

      猜你喜欢
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多