[英]Why do i have set my canvas width to window innerWidth in JS and canvas width 100% in css?
[英]Div width set to 100% in CSS breaks the width of my script
我有一個 Div 滑塊,可以在單擊時換出 Div。 如果我將 css 更改為以下內容:
.hslide-item {width: 100%};
然后整個 div 寬度被腳本忽略。 我需要 .hslide-item 在不破壞 JS 方面的情況下 100% 填充其父 div。
// Add markup $('.hslide').wrapInner('<div class="hslide-stage" />'); // Calculate Conditions & Set Vars // var playTimer = 9, slideQty = $('.hslide-item').length, slideWidth = $('.hslide-item').width(), stageWidth = $('.hslide-stage').width(), contWidth = $('.hslide').width(); if ((slideQty*slideWidth) < contWidth) { $('.hslide-prev').addClass('hslide-prev-disabled').removeClass('hslide-prev'); $('.hslide-next').addClass('hslide-next-disabled').removeClass('hslide-next'); } else { $('.hslide-prev-disabled').addClass('hslide-prev').removeClass('hslide-prev-disabled'); $('.hslide-next-disabled').addClass('hslide-next').removeClass('hslide-next-disabled'); } $(window).resize(function() { var slideQty = $('.hslide-item').length, slideWidth = $('.hslide-item').width(), stageWidth = $('.hslide-stage').width(), contWidth = $('.hslide').width(); if ((slideQty*slideWidth) < contWidth) { $('.hslide-prev').addClass('hslide-prev-disabled').removeClass('hslide-prev'); $('.hslide-next').addClass('hslide-next-disabled').removeClass('hslide-next'); } else { $('.hslide-prev-disabled').addClass('hslide-prev').removeClass('hslide-prev-disabled'); $('.hslide-next-disabled').addClass('hslide-next').removeClass('hslide-next-disabled'); } }); $('.hslide-next').live('click', function(event) { event.preventDefault(); $('.hslide-stage').animate({left: -(slideWidth)}, 500, function() { $('.hslide-item:first').appendTo('.hslide-stage'); $('.hslide-stage').css({left: '0px'}); }); }); $('.hslide-prev').live('click', function(event) { event.preventDefault(); $('.hslide-item:last').prependTo('.hslide-stage'); $('.hslide-stage').css({left: -(slideWidth)}); $('.hslide-stage').animate({left: '0px'}, 500, function() { }); }); function moveForward() { $('.hslide-stage').animate({left: -(slideWidth)}, 500, function() { $('.hslide-item:first').appendTo('.hslide-stage'); $('.hslide-stage').css({left: '0px'}); }); } var timer = setInterval(moveForward,playTimer); $('.hslide, .hslide-prev, .hslide-next').hover(function(ev){ // clearInterval(timer); }, function(ev){ // timer = setInterval( moveForward, playTimer); });
body { font-family:sans-serif; } .hslide { height:100px; width:100%; background:#eee; font-size:0; position:relative; overflow:hidden; } .hslide-stage { position:absolute; white-space:nowrap; } .hslide-item { display:inline-block; background:#ccc; box-shadow: inset -1px 0px 0px 0px rgb(255, 255, 255); width:500px; height:100px; font-size:12px; text-align:center; } .hslide-prev, .hslide-next { display:inline-block; background:#eee; color:#000; text-decoration:none; padding:10px; margin:5px 0; } .hslide-prev:hover, .hslide-next:hover { background:#ccc; } .hslide-prev-disabled, .hslide-next-disabled { display:inline-block; background:#eee; color:#ccc; text-decoration:none; padding:10px; margin:5px 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7/jquery.min.js"></script> <div class="hslide"> <div class="hslide-item">One</div> <div class="hslide-item">Two</div> <div class="hslide-item">Three</div> </div> <a href="#" class="hslide-prev">Previous</a> <a href="#" class="hslide-next">Next</a>
// Add markup $('.hslide').wrapInner('<div class="hslide-stage" />'); // Calculate Conditions & Set Vars var playTimer = 9, slideQty = $('.hslide-item').length, slideWidth = $('.hslide-item').width(), stageWidth = $('.hslide-stage').width(), contWidth = $('.hslide').width(); if ((slideQty*slideWidth) < contWidth) { $('.hslide-prev').addClass('hslide-prev-disabled').removeClass('hslide-prev'); $('.hslide-next').addClass('hslide-next-disabled').removeClass('hslide-next'); } else { $('.hslide-prev-disabled').addClass('hslide-prev').removeClass('hslide-prev-disabled'); $('.hslide-next-disabled').addClass('hslide-next').removeClass('hslide-next-disabled'); } $(window).resize(function() { var slideQty = $('.hslide-item').length, slideWidth = $('.hslide-item').width(), stageWidth = $('.hslide-stage').width(), contWidth = $('.hslide').width(); if ((slideQty*slideWidth) < contWidth) { $('.hslide-prev').addClass('hslide-prev-disabled').removeClass('hslide-prev'); $('.hslide-next').addClass('hslide-next-disabled').removeClass('hslide-next'); } else { $('.hslide-prev-disabled').addClass('hslide-prev').removeClass('hslide-prev-disabled'); $('.hslide-next-disabled').addClass('hslide-next').removeClass('hslide-next-disabled'); } }); $('.hslide-next').live('click', function(event) { event.preventDefault(); $('.hslide-stage').animate({left: -(slideWidth)}, 500, function() { $('.hslide-item:first').appendTo('.hslide-stage'); $('.hslide-stage').css({left: '0px'}); }); }); $('.hslide-prev').live('click', function(event) { event.preventDefault(); $('.hslide-item:last').prependTo('.hslide-stage'); $('.hslide-stage').css({left: -(slideWidth)}); $('.hslide-stage').animate({left: '0px'}, 500, function() { }); }); function moveForward() { $('.hslide-stage').animate({left: -(slideWidth)}, 500, function() { $('.hslide-item:first').appendTo('.hslide-stage'); $('.hslide-stage').css({left: '0px'}); }); } var timer = setInterval(moveForward,playTimer); $('.hslide, .hslide-prev, .hslide-next').hover(function(ev){ // clearInterval(timer); }, function(ev){ // timer = setInterval( moveForward, playTimer); });
body { font-family:sans-serif; } .hslide { height:100px; width:100%; background:#eee; font-size:0; position:relative; overflow:hidden; } .hslide-stage { position:absolute; white-space:nowrap; width: 100%; } .hslide-item { display:inline-block; background:#ccc; box-shadow: inset -1px 0px 0px 0px rgb(255, 255, 255); width:100%; height:100px; font-size:12px; text-align:center; } .hslide-prev, .hslide-next { display:inline-block; background:#eee; color:#000; text-decoration:none; padding:10px; margin:5px 0; } .hslide-prev:hover, .hslide-next:hover { background:#ccc; } .hslide-prev-disabled, .hslide-next-disabled { display:inline-block; background:#eee; color:#ccc; text-decoration:none; padding:10px; margin:5px 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <div class="hslide"> <div class="hslide-item">One</div> <div class="hslide-item">Two</div> <div class="hslide-item">Three</div> </div> <a href="#" class="hslide-prev">Previous</a> <a href="#" class="hslide-next">Next</a>
.hslide-stage
也需要width: 100%
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.