क्या jQuery का उपयोग करके पृष्ठ पर किसी विशिष्ट स्थान पर स्क्रॉल करना संभव है?
जिस स्थान पर मुझे स्क्रॉल करना है, वह स्थान है:
<a name="#123">here</a>
या यह सिर्फ एक विशिष्ट DOM आईडी पर जा सकता है?
क्या jQuery का उपयोग करके पृष्ठ पर किसी विशिष्ट स्थान पर स्क्रॉल करना संभव है?
जिस स्थान पर मुझे स्क्रॉल करना है, वह स्थान है:
<a name="#123">here</a>
या यह सिर्फ एक विशिष्ट DOM आईडी पर जा सकता है?
जवाबों:
jQuery स्क्रॉल प्लगइन
चूँकि यह jquery के साथ टैग किया गया एक प्रश्न है , जिसका मुझे कहना है, कि इस लाइब्रेरी में चिकनी स्क्रॉलिंग के लिए एक बहुत अच्छा प्लगइन है, आप इसे यहाँ पा सकते हैं: http://plugins.jquery.com/scrollTo/
दस्तावेज़ीकरण के कुछ अंश:
$('div.pane').scrollTo(...);//all divs w/class pane
या
$.scrollTo(...);//the plugin will take care of this
स्क्रॉल करने के लिए कस्टम jQuery फ़ंक्शन
आप अपने कस्टम स्क्रॉल jquery फ़ंक्शन को परिभाषित करके बहुत हल्के दृष्टिकोण का उपयोग कर सकते हैं
$.fn.scrollView = function () {
return this.each(function () {
$('html, body').animate({
scrollTop: $(this).offset().top
}, 1000);
});
}
और इसका उपयोग करें:
$('#your-div').scrollView();
एक पृष्ठ निर्देशांक तक स्क्रॉल करें
चेतन html
और body
साथ तत्व scrollTop
या scrollLeft
गुण
$('html, body').animate({
scrollTop: 0,
scrollLeft: 300
}, 1000);
सादा जावास्क्रिप्ट
के साथ स्क्रॉल करना window.scroll
window.scroll(horizontalOffset, verticalOffset);
केवल योग करने के लिए, ID के साथ तत्व पर जाने के लिए window.location.hash का उपयोग करें
window.location.hash = '#your-page-element';
सीधे HTML में (accesibility संवर्द्धन)
<a href="#your-page-element">Jump to ID</a>
<div id="your-page-element">
will jump here
</div>
हां, सादे जावास्क्रिप्ट में भी यह बहुत आसान है। आप किसी तत्व को एक आईडी देते हैं और फिर आप उसे "बुकमार्क" के रूप में उपयोग कर सकते हैं:
<div id="here">here</div>
यदि आप चाहते हैं कि जब कोई उपयोगकर्ता किसी लिंक पर क्लिक करे तो आप उसे स्क्रॉल कर सकते हैं, तो आप बस कोशिश की हुई और सही विधि का उपयोग कर सकते हैं:
<a href="#here">scroll to over there</a>
इसे प्रोग्रामेटिक रूप से करने के लिए, उपयोग करें scrollIntoView()
document.getElementById("here").scrollIntoView()
किसी भी प्लगइन का उपयोग करने की आवश्यकता नहीं है, आप इसे इस तरह से कर सकते हैं:
var divPosition = $('#divId').offset();
इसके बाद दस्तावेज़ को विशिष्ट DOM पर स्क्रॉल करने के लिए इसका उपयोग करें:
$('html, body').animate({scrollTop: divPosition.top}, "slow");
.animate
कॉल होने से ठीक पहले पुनर्गणना
यहाँ एक शुद्ध जावास्क्रिप्ट संस्करण है:
location.hash = '#123';
यह अपने आप स्क्रॉल होगा। "#" उपसर्ग जोड़ना याद रखें।
सादा जावास्क्रिप्ट:
window.location = "#elementId"
<div id="idVal">
<!--div content goes here-->
</div>
...
<script type="text/javascript">
$(document).ready(function(){
var divLoc = $('#idVal').offset();
$('html, body').animate({scrollTop: divLoc.top}, "slow");
});
</script>
यह उदाहरण इस मामले में एक विशेष div आईडी, 'idVal' का पता लगाने के लिए दिखाता है। यदि आपके पास बाद की divs / tables हैं जो इस पेज में ajax के माध्यम से खुलेंगे, तो आप अद्वितीय divs असाइन कर सकते हैं और div की प्रत्येक सामग्री के लिए विशेष स्थान पर स्क्रॉल करने के लिए स्क्रिप्ट को कॉल कर सकते हैं।
आशा है कि यह उपयोगी होगा।
<script type="text/javascript">
$(document).ready(function(){
$(".scroll-element").click(function(){
$('html,body').animate({
scrollTop: $('.our_companies').offset().top
}, 1000);
return false;
});
})
</script>
इसे इस्तेमाल करे
<div id="divRegister"></div>
$(document).ready(function() {
location.hash = "divRegister";
});
यहाँ @ juraj-blahunka का हल्का दृष्टिकोण है । यह फ़ंक्शन ग्रहण नहीं करता है कि दस्तावेज़ दस्तावेज़ है और केवल स्क्रॉल होता है यदि आइटम दृश्य से बाहर है। अनावश्यक उछल से बचने के लिए एनिमेशन कतार भी अक्षम है।
$.fn.scrollToView = function () {
return $.each(this, function () {
if ($(this).position().top < 0 ||
$(this).position().top + $(this).height() > $(this).parent().height()) {
$(this).parent().animate({
scrollTop: $(this).parent().scrollTop() + $(this).position().top
}, {
duration: 300,
queue: false
});
}
});
};
Jquery.easing.min.js का उपयोग करके, निश्चित IE कंसोल त्रुटियों के साथ
एचटीएमएल
<a class="page-scroll" href="#features">Features</a>
<section id="features" class="features-section">Features Section</section>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/jquery.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
<!-- Scrolling Nav JavaScript -->
<script src="js/jquery.easing.min.js"></script>
jQuery
//jQuery to collapse the navbar on scroll, you can use this code with in external file with name scrolling-nav.js
$(window).scroll(function () {
if ($(".navbar").offset().top > 50) {
$(".navbar-fixed-top").addClass("top-nav-collapse");
} else {
$(".navbar-fixed-top").removeClass("top-nav-collapse");
}
});
//jQuery for page scrolling feature - requires jQuery Easing plugin
$(function () {
$('a.page-scroll').bind('click', function (event) {
var anchor = $(this);
if ($(anchor).length > 0) {
var href = $(anchor).attr('href');
if ($(href.substring(href.indexOf('#'))).length > 0) {
$('html, body').stop().animate({
scrollTop: $(href.substring(href.indexOf('#'))).offset().top
}, 1500, 'easeInOutExpo');
}
else {
window.location = href;
}
}
event.preventDefault();
});
});
location.hash = 'idOfElement';
पर्याप्त होना चाहिए
आप इसे scroll-behavior: smooth;
जावास्क्रिप्ट के बिना प्राप्त करने के लिए उपयोग कर सकते हैं
https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior