2013-04-05 4 views
5

के वर्तमान स्क्रॉल ऑफसेट का div प्राप्त करें मेरे पास दो अलग-अलग HTML फ़ाइलें हैं, दो अलग UIWebViews & UISegmentControl है। segmentChanged पर, मैंने एक HTML फ़ाइल लोड करके WebView प्रदर्शित किया था। दोनों HTML फ़ाइलों में सामान्य अनुभाग होते हैं केवल अनुभाग सामग्री बदल जाती है। अब मैं कार्यक्षमता है कि, जब उपयोगकर्ता पढ़ता पहले WebView & क्लिक के Segment की section 1.1 दूसरा WebViewsection 1.1 जो वह पहले WebView और viceversa में पढ़ता तक scroll से पीछे नहीं WebView जरूरतों लोड हो रहा है, तो के लिए लागू करना चाहते हैं। इसके अलावा अनुभागों की संख्या भी है। मैंने निम्नलिखित javacript का उपयोग किया लेकिन इसे वर्तमान div id के पैरामीटर की आवश्यकता है। लेकिन scroll पर, मैं वर्तमान दृश्य div id कैसे प्राप्त कर सकता हूं। मैंने प्रत्येक div के लिए id दिया था।UIWebView

function pointInView(id) 
{ 
    var divid = document.getElementById(id); 
    divid.scrollIntoView(true); 
    return false; 
} 

कोई भी मेरी मदद करें।

उत्तर

2

मैं वर्तमान scroll offset से div id प्राप्त करने के लिए एक बहुत खोज की, लेकिन इसके लिए समाधान नहीं मिला। इसलिए मैं दूसरे विकल्प के साथ जाता हूं, दोनों फाइलों में प्रत्येक सेक्शन के & एंड ऑफ़सेट को संग्रहीत करता है। इसलिए मैंने डेटाबेस & में एक लुक-अप तालिका बनाई थी, दोनों फाइलों में प्रत्येक सेक्शन के & एंड ऑफ़सेट को संग्रहीत किया गया था।

पूर्व। जब उपयोगकर्ता scrolls पहले webview से section 1.1 & दूसरे webview को खोलने के लिए स्विच पर क्लिक करता है, तो दूसरी फ़ाइल में सेक्शन 1.1 में दूसरे webview पर स्विच करता है।

2

मुझे लगता है कि jquery आपके बचाव में आ सकता है।

क्या आप jQuery का उपयोग कर सकते हैं, क्योंकि यह क्रॉस-ब्राउज़र संगत है?

http://stackoverflow.com/questions/5353934/check-if-element-is-visible-on-screen 

बाहर चेक जवाब रूप BenM

+0

उपर्युक्त लिंक मूल रूप से JQuery के लिए है लेकिन मैं इसे जावास्क्रिप्ट में चाहता हूं। – Girish

+0

एक ही लिंक में jquery के नीचे एक जावास्क्रिप्ट कार्यान्वयन शो है। – nolimitsdude

1

आपको इसके लिए वास्तव में एक डीबी प्रविष्टि की आवश्यकता नहीं है। वैसे ही जैसे

$('.action').click(function(){ 
    document.location = yourSecondFIleLocation+'?offset = ' + $('selectorDiv').detOffsetFromParentDiv(); //or get the scroll offset from the page. 
}); 

कुछ के माध्यम से क्लिक करें घटना को पकड़ने और इसे करने के लिए स्क्रॉल करने के लिए या तो php या jQuery के साथ दूसरे पृष्ठ पर इसे पकड़।

हेक जो भी प्राप्त करने योग्य है यदि आप अपने कोड को अनुच्छेद चिह्न और सही ढंग से लिंक करते हैं।

+0

मैं वेबदृश्य में कहीं भी क्लिक नहीं कर रहा हूं, बस इसे स्क्रॉल करता हूं। – Girish

+0

फिर यह संभव है। बस स्क्रॉलबार पर इवेंट श्रोता जोड़ें। और दूसरी विंडो में swithichng जब स्थिति प्राप्त करें। – Sangoku

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद। – Girish

0

नीचे करने का प्रयास करें,

किसी भी स्थिति में हम सामग्री स्क्रॉल देखने की भरपाई के लिए सेट पर किसी भी पुस्तक को देखने स्क्रॉल करें। आपकी समस्या को हम दो समाधान है,

  1. आपके मामले में उपयोगकर्ता द्वारा पहली बार वेब दृश्य देख रहा है हल करने के लिए, सामग्री पहली वेब देखने की भरपाई को बचाने के लिए किसी भी चर में की तरह नीचे CGFloat ऑफसेट = webView1.scrollView .contentOffset.y; फिर जब आप दूसरा वेब दृश्य खोलें तो इस ऑफसेट मान को दूसरे वेब व्यू स्क्रॉल ऑफसेट पर प्रदान करें।अपनी जरूरत के

के अनुसार

  • सेट webView1.scrollView.contentOffset = webView2.scrollView.contentOffset या ठीक इसके विपरीत मुझे आशा है कि यह आप में मदद मिलेगी।

  • +0

    लेकिन ऑफसेट दोनों फाइलों में समान नहीं हैं। केवल खंड समान हैं। – Girish