पुनः बनाने लक्ष्य
का कारण बनता है तो मैं <div>
की एक सूची किसी एकल स्तंभ लेआउट या तो वर्ग "सक्रिय" या "निष्क्रिय" है कि सभी s है। सक्रिय वर्ग आइटम के दाईं ओर एक ग्राफिक दिखाता है और निष्क्रिय वर्ग नहीं करता है। मैंने इसे सेटअप किया है ताकि ऊपर या नीचे तीर कुंजी को मारने से "सक्रिय" वर्ग (और इसके साथ ग्राफिक) पिछले या अगले आइटम पर जा सके। यह एनिमेटेड नहीं है, लेकिन आप ग्राफिक गायब होने और ऊपर या नीचे टैग पर फिर से दिखाई दे सकते हैं।जावास्क्रिप्ट window.scroll देरी अतुल्यकालिक
अब मैं पेज को तीर कीप्रेस पर स्क्रॉल करना चाहता हूं ताकि आइटम का शीर्ष किनारा हमेशा एक ही स्थान पर हो। चूंकि तत्व सूची पेज खिड़की से बड़ा है, यह स्वचालित रूप से ब्राउज़र स्क्रॉल करने के लिए इतना है कि चयनित <div>
स्क्रीन के केंद्र में हमेशा होता है आवश्यक है ...
कोड
//Paging through items with arrow keys
theWindow.keydown(function (e) {
var key = e.keyCode,
oldItem = $('li.active')
if ((key === 40 && oldItem.next().length) || (key === 38 && oldItem.prev().length)) {
var theWindowMod = (window.innerHeight/2) + 43,
theHTML = $('html'),
theDetail = $('.detail')
theHTML.addClass('notransition')
if (key === 40 && oldItem.next().length) {
oldItem.removeClass('active').next().addClass('active')
} else if (key === 38 && oldItem.prev().length) {
oldItem.removeClass('active').prev().addClass('active')
}
var newItem = $('li.active')
window.scroll(0, newItem.offset().top - theWindowMod)
e.preventDefault()
$('.detail-inner.active').fadeOut(0).removeClass('active')
$('section.active, .tab.active').removeClass('active')
newItem.find('.tab').add(theDetail).addClass('active')
theDetail.find('.detail-' + newItem.attr('class').split(' ')[0]).addClass('active').fadeIn(0)
setTimeout(function() {
theHTML.removeClass('notransition')
}, 1)
}
});
समस्या
समस्या यह है कि सफारी के सभी संस्करणों, लेकिन कोई अन्य ब्राउज़र में, window.scroll विधि सीएसएस वर्ग परिवर्तन प्रदर्शन बुद्धिमान के पीछे सिर्फ एक सा है है। क्या होता है कि वे दो अलग-अलग रेड्रा घटनाओं में समाप्त होते हैं और ऐसा लगता है कि जब आप स्क्रॉल करते हैं तो पृष्ठ 'गड़बड़' होता है क्योंकि ब्राउज़र स्क्रॉल होने से पहले आप अगले तत्व के दाईं ओर ग्राफिक को संक्षेप में देख सकते हैं।
लाइव डेमो
आप इसे यहाँ रहते देख सकते हैं:
आइटम के माध्यम से पेज के लिए तीर कुंजियों का उपयोग करें। कूद पर ध्यान दें। मुझे इसे हल करने के लिए कैसे जाना चाहिए?
वेबकिट केवल एक ही है कि hashtagly.css में ढाल _and_ रेखीय-ढाल है '.right-bg, .left-bg {... पृष्ठभूमि छवि: -webkit-ढाल (.. । बाकी बाकी केवल रैखिक-ढाल का उपयोग करते हैं (यद्यपि परीक्षण करने के लिए कोई सफारी नहीं) ... वहां बहुत सी डुप्लिक सीएसएस बीटीडब्ल्यू – technosaurus
मेरी आशा है कि इसका उत्तर दिया गया था, लेकिन सिर के लिए धन्यवाद। मुझे नीचे पतला होना चाहिए कोड बड़ा समय। – alt
एक कामकाज के रूप में आप पृष्ठ स्क्रॉल को एनिमेट करने पर विचार कर सकते हैं या किसी भी तरह से समस्या से बचने के लिए एनिमेशन का उपयोग कर सकते हैं। – tiffon