2013-04-05 7 views
5

Ho due file HTML diversi, due diversi UIWebViews & a UISegmentControl. Su segmentChanged, avevo visualizzato WebView caricando un file HTML. Entrambi i file HTML contengono sezioni comuni solo il contenuto della sezione viene modificato. Ora voglio implementare la funzionalità che, quando l'utente legge section 1.1 delle prime WebView & clic Segment per il caricamento secondo WebView, poi il secondo WebView bisogno di scroll fino alla section 1.1 che egli legge in prima WebView e viceversa. Inoltre ci sono n numero di sezioni. Ho usato il seguente javacript ma ha bisogno del parametro corrente div id. Ma su scroll, come posso ottenere l'attuale visibile div id. Ho dato il id per ogni div.Ottieni il div dell'offset di scorrimento corrente di UIWebView

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

Chiunque per favore aiutami.

risposta

2

ho cercato un sacco per ottenere il div id dalla corrente scroll offset ma non ha ottenuto la soluzione per esso. Quindi vado con l'altra opzione che, memorizzato l'inizio & offset di ciascuna sezione in entrambi i file. Così ho creato una tabella di ricerca nel database & memorizzato l'inizio & offset di ciascuna sezione in entrambi i file.

ex. Quando l'utente scrolls il primo webview a section 1.1 & fa clic sull'interruttore per aprire il secondo webview, quindi I scrolled il secondo webview alla sezione 1.1 nel secondo file.

2

Penso che jquery potrebbe essere in grado di venire in vostro soccorso.

Si può usare jQuery, dal momento che è compatibile con più browser?

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

Partenza modulo di risposta BenM

+0

Il link sopra è fondamentalmente per JQuery ma lo voglio in Javascript. – Girish

+0

Lo stesso link ha uno show di implementazione javascript sotto quello jquery. – nolimitsdude

1

Non hai davvero bisogno di una voce db per quello. Basta prendere l'evento click tramite qualcosa come

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

e prenderlo nella seconda pagina o con PHP o jQuery per scorrere fino ad essa.

Heck che è persino possibile se inserisci nel tuo codice i segni di paragrafo e li colleghi correttamente.

+0

Non faccio clic in qualsiasi punto della vista Web, lo faccio scorrere. – Girish

+0

Quindi è possibile. aggiungi il listener di eventi alla barra di scorrimento. e ottenere la posizione quando si passa all'altra finestra. – Sangoku

+0

grazie mille per il vostro aiuto. – Girish

0

Si prega di provare qui sotto,

Per scorrere qualsiasi vista di scorrimento in qualsiasi posizione abbiamo impostato il contenuto offset della vista di scorrimento. Per risolvere il problema abbiamo due soluzioni,

  1. Nel tuo caso quando l'utente sta visualizzando la prima visualizzazione Web, salvare il contenuto di offset della prima visualizzazione Web in qualsiasi variabile come qui di seguito compensata CGFloat = webView1.scrollView .contentOffset.y; Quindi, quando si apre la seconda vista Web , fornire questo valore di offset al secondo offset scorrimento vista Web .

  2. Set webView1.scrollView.contentOffset = webView2.scrollView.contentOffset o viceversa in base alle proprie necessità

spero che questo vi aiuterà.

+0

Ma gli offset non sono uguali in entrambi i file. Solo le sezioni sono uguali. – Girish

Problemi correlati