- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
经过许多教程和大量时间后,我设法使用 jQuery 构建了一个 slider 。但是,它并没有我希望的那样顺利。我使用了一个自定义句柄,由于新的 jQueryUI 没有句柄选项,我在 CSS 中创建了一个句柄。但是,此句柄超出了 slider 所需的范围。我已经上传了一个可以找到的测试页here .
我的代码如下:
<style type="text/css" media="screen">
<!--
body {
padding: 0;
font: 1em "Trebuchet MS", verdana, arial, sans-serif;
font-size: 100%;
background-color: #212121;
margin: 0;
}
h1 {
margin-bottom: 2px;
}
#container {
background-color: #fff;
width: 580px;
margin: 15px auto;
padding: 50px;
}
/* slider specific CSS */
.sliderGallery {
background: url(productbrowser_background_20070622.jpg) no-repeat;
overflow: hidden;
position: relative;
padding: 10px;
height: 160px;
width: 560px;
}
.sliderGallery UL {
position: absolute;
list-style: none;
overflow: none;
white-space: nowrap;
padding: 0;
margin: 0;
}
.sliderGallery UL LI {
display: inline;
}
.slider {
width: 542px;
height: 17px;
margin-top: 140px;
margin-left: 5px;
padding: 1px;
position: relative;
background: url(productbrowser_scrollbar_20070622.png) no-repeat;
}
.ui-slider .ui-slider-handle {
width:180px;
margin-left:-90px;
}
.ui-slider-handle {
position: absolute;
cursor: default;
height: 17px;
top: 0;
background: url(productbrowser_scroller_20080115.png) no-repeat;
z-index: 100;
}
.slider span {
color: #bbb;
font-size: 80%;
cursor: pointer;
position: absolute;
z-index: 110;
}
.slider .slider-lbl1 {
left: 50px;
}
.slider .slider-lbl2 {
left: 220px;
}
.slider .slider-lbl3 {
left: 156px;
}
.slider .slider-lbl4 {
left: 280px;
}
.slider .slider-lbl5 {
left: 455px;
}
-->
</style>
<script src="jqueryui.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
window.onload = function () {
var container = $('div.sliderGallery');
var ul = $('ul', container);
var itemsWidth = ul.innerWidth() - container.outerWidth() + 50;
$('.handle', container).slider({
min: -50,
max: itemsWidth,
stop: function (event, ui) {
ul.animate({'left' : ui.value * -1}, 500);
},
slide: function (event, ui) {
ul.css('left', ui.value * -1);
}
});
};
</script>
<div id="container">
<div class="sliderGallery">
<ul>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
<li><a href="#"><img src="ki_aikido.png"></a></li>
</ul>
<div class="slider ui-slider">
<div class="handle"></div>
<span class="slider-lbl1">Our Books</span>
<span class="slider-lbl2">Other Books</span>
</div>
</div>
</div>
我想知道是否有任何方法可以强制 slider 停留在其后面的图像内?如果我没有解释清楚,测试链接会让你明白我的意思。
提前致谢,卓诺克
最佳答案
问题出在您的句柄设置为超出其容器这一事实。
这两个问题来自于以下
.ui-slider .ui-slider-handle {
width:180px;
margin-left:-90px;
}
第二行表示允许 slider 在其初始容器左侧之前移动 90px(因此左侧溢出)
而当 Handlebars 柄的左边设置为100%时,意味着它会从90px(180-90)向右溢出。
我的处理方式是删除 margin-left:-90px;
,将滚动 div 的宽度减少 180px,并使用另一个 div 来显示滚动条图像(位于您的滑动 div 下方,但更宽)。
类似于:
.slider {
width: 362px;
height: 17px;
margin-top: 140px;
margin-left: 5px;
padding: 1px;
position: relative;
}
.ui-slider .ui-slider-handle {
width:180px;
}
.sliderImg{
background: url(productbrowser_scrollbar_20070622.png) no-repeat;
/*add css to position it correctly here*/
}
编辑:为了回答您的评论,对您页面上的 CSS 进行以下更正应该可以解决这个问题:
.slider {
/*let the rest as is*/
margin-left: 90px;
}
.ui-slider .ui-slider-handle {
width:180px;
margin-left:-90px;
}
这种组合将使它具有相同的边界 (-90 + 90 = 0 ),但会使其移动得很好。
编辑 2:
要启用 handle 点击,您需要为您的 handle
指定一个高度(否则您将无法点击它)。然而,这会将您的 span 移动到滑动 div 下,要克服它,您必须指定它们的顶部位置(因为您已经有了它们,这很容易 ;)
)。
下面应该做的。
.handle {
height: 100%;
}
.slider span {
/*let the rest as is*/
top: 0;
}
要使其在跨度之上工作,您需要像这样更改您的 html:
<div class="handle">
<span id="slider-tags" class="slider-lbl1">Our Books</span>
<span id="slider-tags" class="slider-lbl2">Other Books</span>
</div>
关于javascript - jQuery Slider 执行意外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7481602/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
当我尝试在 db2 中创建表时,它抛出以下错误 $ db2 CREATE TABLE employee(emp_id INT NOT NULL, emp_name VARCHAR(100)) sh:
我有: while (i < l) { if (one === two) { continue; } i++; } 但是 JSLint 说: Problem at line 1 chara
所以我有这个代码: char inputs[10] = ""; int numInputs = 0; while (numInputs < 10){ char c; printf("E
var ninja = { name: 'Ninja', say: function () { return 'I am a ' + this.name; }
我收到一个我不明白的错误,请注意,我是编码新手,所以这可能是一个简单的错误。 #include using namespace std; int main() { //Initialise Fahr
我正在使用 javascript 和 react,由于某种原因,我收到了一个奇怪的 token 错误。 这是发生错误的代码: renderNavBar() { if (!this.us
Closed. This question is off-topic。它当前不接受答案。
由于某种我无法解释的原因,编译器正在输出一个错误,指出它发现了一个意外的#else 标记。 这发生在文件的开头: #if defined( _USING_MFC ) #include "stda
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
这个问题在这里已经有了答案: Difference between sh and Bash (11 个答案) 关闭 2 年前。 我正在编写一个简单的 bash 脚本,我在 XX `(' unexpe
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 此问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-topic
我在 Windows 7 上编写了一个脚本,它不断给我一个错误“(此时出乎意料。”对于以下代码 if %vardns%=="NODNS" ( netsh interface ipv4 set ad
我正在尝试使用xmlstarlet(使用xpath)解析XML文件,但是出现语法错误,并且我不知道如何更正我的代码。 这是我的脚本: #!/bin/bash if [ $1=="author" ];
以下脚本旨在在目录中的所有文件上运行程序“senna”,并将每个文件的输出(保留输入文件名)写入另一个目录 for file in ./Data/in/*; do ./senna -iobta
我从 challengers.coffee 运行此代码,并收到错误 ActionView::Template::Error (SyntaxError: [stdin]:3:31:unexpected
我在 config.db.database; 行中有语法错误(意外的标记“.”)。这是我在文件中的代码 const config = require('../config/config') const
这一定很明显,但是我无法使它正常工作。我正在尝试传输应该用于构建$ classKey的对象,这反过来又导致删除所需的软件(amd64或i386)。好吧,这里的代码: $name = @("softwa
我正在使用 1.3.7 版学习 Grails,但我一直无缘无故地遇到以下语法错误: unexpected token: mapping @ line x, column y. 有一次,我通过运行“gr
我正在尝试找出这段Pascal代码的问题 function Factorial(n: integer): integer; begin if n = 0 then Result := 1
我是一名优秀的程序员,十分优秀!