jquery - removeClass() 何时在窗口中?

标签 jquery html css

http://imgur.com/9G8jXm2

更新:

我删除了 .来自 .hide-time,谢谢!我还尝试将代码块放在准备好的文档之前、之后和中,如下所示:

$(document).ready(function() {

                $('time').bind('inview', monitor);
                function monitor(event, visible) {
                    if(visible) {
                        $('time').window(function() {
                            $(this).removeClass('hide-time');
                });// element is now visible in the viewport

                var updateMarker = function() {

还有这个:

 $(window).on('scroll resize', updateMarker);

                // Calls function on DOM ready
                updateMarker();


                $('time').bind('inview', monitor);
                function monitor(event, visible) {
                    if(visible) {
                        $('time').window(function() {
                            $(this).removeClass('hide-time');
                });// element is now visible in the viewport
            });

还有这个:

$('time').bind('inview', monitor);
                function monitor(event, visible) {
                    if(visible) {
                        $('time').window(function() {
                            $(this).removeClass('hide-time');
                });// element is now visible in the viewport



                // Calls function when viewport is resized or scrolled    
                $(window).on('scroll resize', updateMarker);

                // Calls function on DOM ready
                updateMarker();
            });

这些都没有用。我做错了什么?

我一直在研究一个时间轴,该时间轴的日期随滚动而变化。到目前为止,我无法完全将 jQuery 获取到 CSS .hide-time 上的 .removeClass,它具有属性 display: none。

第一组指令允许一条路径在时间轴中移动。最后一组指令处理日期元素。我确定我遇到的一个问题是知道把第二位放在哪里。每次我把它放在时间线代码之前、之后或之中时,它们都无法工作。澄清一下,时间轴工作得很好,我只需要在它进入视口(viewport)时显示日期标签。代码如下:

<!DOCTYPE html>
    <head>
        <meta charset='UTF-8'>
        <!-- CSS Styles Link -->
        <link rel='stylesheet' type='text/css' href='styles.css'>
        <!-- jQuery Library Link -->
        <script type='text/javascript' src='jquery-awesomeness.js'></script>



        <script>
            $(document).ready(function() {

                var updateMarker = function() {
                    // Update measurements
                    var viewportHeight = $(window).height(),
                        contentHeight = $('#content1').height(),
                        pathWidth = $('#path').width(),
                        scrollPosition = $(window).scrollTop();

                    // Update #marker dimensions
                    $('.animate').width(scrollPosition/(contentHeight-viewportHeight)*pathWidth); 
                    // The breakdown: The line of code above defines scrollable distance by:
                    // Subtracting height of #content1 from height of viewport using (contentHeight-viewportHeight)
                    // This determines what percentage of the scroll has been scrolled through
                    // Multiply this percentage by #path width using *pathWidth
                }


                // Calls function when viewport is resized or scrolled    
                $(window).on('scroll resize', updateMarker);

                // Calls function on DOM ready
                updateMarker();
            });



            $('time').bind('inview', monitor);
            function monitor(event, visible) {

                if(visible) {
                    $('time').window(function() {
                        $(this).removeClass('.hide-time');
                });// element is now visible in the viewport
            });
        </script>

    </head>




    <body>
        <!-- HTML Code for Timeline elements -->
        <div id='timeline'> <!-- Timeline's main container -->
            <div id='path'>
                <div id='marker' class='animate'></div><!-- Timeline's animatable marker -->
            </div><!-- Timeline's inner path -->
        </div>



        <div id='content1'>
            <div id='date-wrapper' class='animate'>
                <time class='hide-time' datetime='1997-12'>Dec '97</time>
            </div>
            <p>
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum dolor turpis, consectetur vel libero a, mollis dapibus odio. Nunc lobortis, eros non tincidunt porttitor, purus tellus porta lectus, non luctus arcu augue eu est. Nunc malesuada ex elit, vel bibendum erat dictum nec. Proin imperdiet efficitur elit eu vestibulum. Nullam id augue tincidunt, efficitur nunc non, efficitur urna. Proin sit amet tincidunt purus. Sed interdum, felis quis facilisis malesuada, felis felis viverra lectus, eget euismod elit risus et mi. Mauris eu enim tellus. Aenean tincidunt orci nec tincidunt facilisis. Phasellus dignissim ante ut maximus feugiat. Mauris sollicitudin venenatis neque nec luctus. Quisque vel tempus urna, sed feugiat leo. Sed tellus magna, molestie non purus in, viverra condimentum orci. Nulla a nunc mauris. Aliquam convallis interdum velit, aa
            </p>

            <time  class='hide-time' datetime='1998-12'>Dec '98</time>
            <p>
                Sed volutpat purus enim, eget accumsan odio ullamcorper sit amet. Sed vitae imperdiet metus. Aenean mollis mauris odio, eget finibus ligula ornare eu. Aliquam id velit quis tellus cursus imperdiet. Mauris eget laoreet ipsum, sed ultricies magna. Aliquam vel neque ut risus dapibus suscipit nec nec ipsum. Nullam vulputate, elit sit amet finibus sagittis, nunc nisl molestie sem, et tincidunt neque magna in nunc. Nullam aliquam mi et ante dapibus posuere. Vivamus aliquet ipsum sit amet tellus lacinia, vitae convallis odio aliquam. Mauris rhoncus, leo sit amet vulputate placerat, sem tortor fermentum ex, quis luctus nulla sapien consequat nunc.
            </p>

            <time  class='hide-time' datetime='1999-12'>Dec '99</time>
            <p>
                Phasellus a pellentesque urna. Integer eget mattis nulla. Nullam sed diam ipsum. Fusce interdum scelerisque arcu, quis ultricies risus accumsan vel. Quisque luctus nisi a nisl porttitor, at finibus elit porttitor. Fusce eget mauris a magna sollicitudin volutpat. Sed nisl magna, volutpat quis mauris a, sagittis mollis nibh. Ut consectetur justo et sem convallis, at elementum purus hendrerit. Curabitur eros odio, ullamcorper vitae facilisis vel, congue sed mauris. Aliquam egestas augue nec scelerisque ornare. Integer et neque metus. Suspendisse aliquet scelerisque odio et ornare. Donec ac mi sed nunc interdum aliquet nec at lectus. Praesent eu tortor pretium, euismod tellus ut, scelerisque massa. Nullam eleifend malesuada magna rutrum gravida.
            </p>

            <time  class='hide-time' datetime='2000-12'>Dec '00</time>
            <p>
                Phasellus ultricies elit ac turpis consequat, a suscipit tellus cursus. Aenean in consectetur turpis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non dui non ipsum pretium sagittis. Donec dictum, enim sit amet venenatis venenatis, ante purus malesuada neque, ac pellentesque eros turpis eu velit. Vestibulum ligula leo, aliquet et dignissim et, dapibus nec orci. Nullam ultrices sapien id imperdiet aliquam. Vestibulum id lorem finibus, condimentum magna mollis, interdum magna. Sed vel lorem feugiat, aliquam mauris non, consequat ante. Nunc eu sem et dui porta auctor. Nam tincidunt orci sed egestas tempor. Suspendisse euismod, arcu vitae porta sollicitudin, justo erat porta sem, vel suscipit odio lorem sit amet mi. Maecenas quis finibus elit.
            </p>

            <time  class='hide-time' datetime='2001-12'>Dec '01</time>
            <p>
                Praesent eu ante eu est rutrum suscipit. Maecenas dictum massa eros, blandit fermentum dui ultrices et. Duis in orci eget nulla tincidunt rhoncus at et purus. Nunc porta ipsum vitae lacinia ornare. Vivamus laoreet odio quis urna porta blandit. In viverra molestie ornare. Nam lorem turpis, lacinia at lacus non, pharetra efficitur ipsum. Donec ultrices lacinia velit id eleifend. Integer pellentesque lectus tincidunt est porta, et elementum ex euismod. Vivamus lobortis at odio at interdum. Vestibulum posuere quam dolor, at rhoncus elit cursus nec. Proin mollis tincidunt libero quis convallis. Donec vel placerat dui, at cursus urna. Donec cursus eleifend dapibus.
            </p>
        </div>
    </body>
</html>

还有 CSS:

#timeline {
    width: 98%;
    height: 1%;
    margin: 1%;
    padding-top: 1%;
    padding-bottom: 1%;
    position: fixed;
    bottom: 0;
    left: 0;
    background-color: #590C13;
    border-radius: 5px;
    }

#path {
    width: 100%;
    position: absolute;
    border-top: 3px solid #424343;
    }
#marker {
    width: 0;
    position: absolute;
    border-top: 3px solid #ffffff;
    }

#date-wrapper {
    width: 5%;
    min-width: 5%;
    position: fixed;
    bottom: 7%;
    left: 0;
    }

time {
    width: 50px;
    padding: 10px;
    position: absolute;
    bottom: 6.5%;
    right: 0;
    color: #ffffff;
    text-align: right;
    background-color: #424343;
    border-radius: 5px;
    }

.hide-time {
    display: none;
    }

p { /* This is place holder content used to test jQuery scroll position. Feel free to delete.  */
    padding: 3%;
    font-size: 2em;
    line-height: 3em;
    }

在此先感谢您的所有帮助!

最佳答案

代替

$(this).removeClass('.hide-time');

应该是

$(this).removeClass('隐藏时间');

您必须提供类的名称,而不是选择器。

monitor 函数中也存在语法错误。

正确代码如下:

function monitor(event, visible) {    
    if (visible) {
        $('time').window(function () {
            $(this).removeClass('.hide-time');
        }); // element is now visible in the viewport
    }
}

关于jquery - removeClass() 何时在窗口中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27183257/

相关文章:

ios - 移动 Safari : change background color of picker view (select)

CSS 混合固定大小的列和可变大小的间距

jquery - 滚动 "hang"或 "stick"效果

javascript - 在页面加载时运行 JS 函数 VB>NET

html - 将外部样式表附加到 SSRS 和报表管理器中的 HTML 页面

c# - 跨页播放的音乐播放器

Javascript 未加载到 HTML 文档中

javascript - 删除打印媒体查询的优雅方式

javascript - 使用 jquery 读取 json 响应

Javascript 日期范围与月份重叠