나는 Moving Boxes 플러그인을 사용하고 있으며 전체 너비 이미지 슬라이더로 적용했습니다. 로드에 반응하지만, 크기를 조절할 때 응답하는 데 문제가 있습니다. CSS의 너비가 특정 값 (예 : JS)으로 고정되고 CSS에 정의 된 너비가 더 이상 적용되지 않는 것 같습니다.로드시 반응이 좋지만 크기가 조절되지 않는 슬라이더
아직 JS를 쓸 수 없으므로 도움을 주시면 감사하겠습니다. 미리 감사드립니다!
CSS (노트에서 가정) 폭을 생성
.slider {
width: 100%;
}
.slider li {
width: 80%;
}
.mb-wrapper {
margin: 0 auto;
position: relative;
left: 0;
width:100% !important;
top: 0;
}
/* Panel Wrapper */
.mb-slider, .mb-scroll {
width: 100%;
height: 100%;
overflow: hidden;
margin: 0 auto;
padding: 0;
position: relative;
left: 0;
top: 0;
}
/*** Slider panel ***/
.mb-slider .mb-panel {
margin: 0;
display: block;
cursor: pointer;
float: left;
list-style: none;
}
.mb-panel.current img {
opacity:1;
filter: alpha(opacity=100);
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
transition: all 0.2s;
}
/*** Inside the panel ***/
.mb-inside {
width:90%;
margin:0 auto;
}
.mb-inside img {
width:100%;
opacity:0.4;
filter: alpha(opacity=40);
-webkit-transition: all 1s;
-moz-transition: all 1s;
transition: all 1s;
}
.mb-inside * {
max-width: 100%;
}
JS. 전체 JS 파일은 here에 임시로 연결됩니다.
// defaults
base.$window = base.$el.parent(); // mb-scroll
base.$wrap = base.$window.parent() // mb-wrapper
.prepend('<a class="mb-scrollButtons mb-left"></a>')
.append('<a class="mb-scrollButtons mb-right"></a><div class="mb-left-shadow"></div><div class="mb-right-shadow"></div>');
base.$panels = base.$el.children().addClass('mb-panel');
base.runTime = $('.mb-slider').index(base.$el) + 1; // Get index (run time) of this slider on the page
base.regex = new RegExp('slider' + base.runTime + '=(\\d+)', 'i'); // hash tag regex
base.initialized = false;
base.currentlyMoving = false;
base.curPanel = (o.initAnimation) ? 1 : base.getHash() || o.startPanel;
// save original slider width
base.width = (o.width) ? parseInt(o.width,10) : base.$el.width();
// save panel width, o.panelWidth originally a fraction (0.5 of o.width) if defined, or get first panel width
// now can be set after initialization to resize using fraction (value <= 2) or px (all values > 2)
base.pWidth = (o.panelWidth) ? (o.panelWidth <=2 ? o.panelWidth * base.width : o.panelWidth) : base.$panels.eq(0).width();
특정 옵션을 변경할 수있는 JS 파일의 일부가 있습니다. 이러한 옵션의 하단에서는이 말한다 :
// deprecated options - but still used to keep the plugin backwards compatible
// and allow resizing the overall width and panel width dynamically (i.e. on window resize)
// width : '100%', // overall width of movingBoxes
// panelWidth : 0.8 // current panel width adjusted to 80% of overall width
언제 않은 회색 '폭'과 '패널 폭'나는 이상한 결과를 얻을 값을 적용합니다. 필요한 경우 정교 할 수 있습니다. 내 CSS의 일부가 이러한 옵션이 JS에서 처리되는 방법과 충돌 할 수 있습니다.
안녕하세요. 입력 해 주셔서 감사합니다. resize에서 같은 함수를 호출하는 것은 의미가 있지만 불행히도 작동하지 않습니다 (현재 [http://rockodzn.com/testing3/]에 업로드 됨). 예기치 않은 무언가가 나타났습니다. 그것은로드 할 때 호출하는 함수를 제거하고 resize를 호출 할 때 발생합니다. 따라서 크기를 조정하면 크기 조정을 시작하자 마자 JS가로드되지만 그 직후에는 응답이 중지됩니다. (현재 업로드 됨 [here] (http://rockodzn.com/testing2/) JS가로드 되 자마자 CSS에 쓰여진 너비 값이 고정 값으로 JS에 의해 덮어 쓰여집니다. –
나는 이것을 사용할 수 있었다 : 'var timer; \t \t $ (창) .resize (함수() { \t \t \t 사항 clearTimeout (타이머) '. 슬라이더' \t \t \t VAR 슬라이더 = $() 데이터를 ('movingBoxes'). \t \t \t 슬라이더 .options.width = $ (window) .width() * 1; // 브라우저의 너비를 100 %로 만듭니다. \t \t \t slider.options.panelWidth = 0.8; // 래퍼 폭의 80 % \t \t \t을 방지 // 일명 스로틀 \t \t \t = 타이머의 setTimeout (함수()() {false를 \t \t \t \t slider.update; \t \t \t}에 크기를 연속적으로 업데이트 , 100); \t \t}); 크기를 조정할 때 함수를로드 할 수 있지만, 다른 크기가 아닌 첫 번째 슬라이더에만 적용됩니다. 클래스 이름은 모두 동일합니다. 어떤 아이디어? –
'$ ('. 슬라이더')를 호출 할 때 data ('movingBoxes')'.slider' 클래스를 사용하는 모든 요소를 _picks up_하지만 'jQuery.data' 함수는 첫 번째 요소에서만 호출됩니다. 나는 모든 작업을'jQuery.each'로 래핑하고'timer'를 배열로 정의 할 것을 제안합니다. 전체 코드 [여기] (http://jsfiddle.net/w8eEN/)를 참조하십시오. 분명히 바이올린에서는 작동하지 않지만 더 읽기 쉽도록하기 위해 필자는 그것을 넣었습니다. – matewka