jadi saya memiliki halaman yang memiliki bilah tautan tetap di samping. Saya ingin menggulir ke div yang berbeda. Pada dasarnya halaman ini hanya satu situs web yang panjang, di mana saya ingin menggulir ke div yang berbeda menggunakan kotak menu di samping.
Ini jquery yang saya miliki sejauh ini
$(document).ready(function() {
$('#contactlink').click = function() {
$(document).scrollTo('#contact');
}
});
Masalahnya adalah itu secara otomatis pergi ke div kontak ketika memuat, kemudian ketika saya menekan #contactlink
menu itu bergulir kembali ke atas.
EDIT: HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- jQuery-->
<script src = "<?php echo base_url() ?>assets/js/jquery.js"></script>
<!-- .js file-->
<script src = "<?php echo base_url() ?>assets/js/pagetwo.js"></script>
<link rel="stylesheet" type="text/css" href="<?php echo base_url()?>assets/css/reset.css" />
<!-- .css for page -->
<link rel="stylesheet" type="text/css" href="<?php echo base_url()?>assets/css/pagetwo.css"/>
<!-- page title-->
<title><!-- Insert Title --></title>
</head>
<body>
<div id="container">
<div id="sidebar">
<ul>
<li><a id = "aboutlink" href="#">auck</a></li>
<li><a id = "peojectslink" href="#">Projects</a></li>
<li><a id = "resumelink" href="#">Resume</a></li>
<li><a id = "contactlink" href="#">Contact</a></li>
</ul>
</div>
<div id="content">
<div class="" id="about">
<p class="header">uck</p>
<p class="info">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="sections"id="projects">
<p class = "header">Projects</p>
<p class="info">Projects</p>
</div>
<div class="sections" id="resume">
<p class = "header">Resume</p>
<p class="info">Resume</p>
</div>
<div class="sections" id="contacts">
<p class = "header">Contact</p>
<p class="info">Contact</p>
</div>
</div>
</div>
</body>
Terima kasih untuk bantuannya
Jawaban:
Pertama, kode Anda tidak mengandung
contact
div, ia memilikicontacts
div!Di sidebar yang Anda miliki
contact
di div di bagian bawah halaman yang Anda milikicontacts
. Saya menghapus finals
untuk contoh kode. (Anda juga salah mengejaprojectslink
id di bilah sisi).Kedua, lihat beberapa contoh klik pada halaman referensi jQuery. Anda harus menggunakan klik seperti,
object.click( function() { // Your code here } );
untuk mengikat event handler klik ke objek .... Seperti dalam contoh saya di bawah ini. Selain itu, Anda juga dapat memicu klik pada suatu objek dengan menggunakannya tanpa argumen, sepertiobject.click()
.Ketiga,
scrollTo
adalah plugin di jQuery. Saya tidak tahu apakah Anda memiliki plugin yang diinstal. Anda tidak dapat menggunakanscrollTo()
tanpa plugin. Dalam hal ini, fungsionalitas yang Anda inginkan hanya 2 baris kode, jadi saya tidak melihat alasan untuk menggunakan plugin.Ok, sekarang ke solusi.
Kode di bawah ini akan bergulir ke div yang benar jika Anda mengklik tautan di sidebar. Jendela memang harus cukup besar untuk memungkinkan pengguliran:
Contoh Langsung
(Gulir ke fungsi yang diambil dari sini )PS: Jelas Anda harus memiliki alasan kuat untuk memilih rute ini daripada menggunakan tag jangkar
<a href="#gohere">blah</a>
...<a name="gohere">blah title</a>
sumber
Tidak ada
.scrollTo()
metode di jQuery, tetapi ada.scrollTop()
satu..scrollTop
mengharapkan parameter, yaitu, nilai piksel tempat scrollbar seharusnya bergulir.Contoh:
akan menggulir jendela (jika ada cukup konten di dalamnya).
Jadi Anda bisa mendapatkan nilai yang diinginkan ini dengan
.offset()
atau.position()
.Contoh:
Ini akan menggulir
#contact
elemen ke tampilan.Metode alternatif non-jQuery adalah
.scrollIntoView()
. Anda dapat memanggil metode itu di mana sajaDOM element
seperti:true
menunjukkan bahwa elemen diposisikan di bagian atas sedangkanfalse
akan menempatkannya di bagian bawah tampilan. Yang menyenangkan dengan metode jQuery adalah, Anda bahkan dapat menggunakannya denganfx functions
suka.animate()
. Jadi, Anda dapat memuluskan sesuatu.Referensi: .scrollTop () , .position () , .offset ()
sumber
Anda dapat mencoba :
sumber
Tambahkan fungsi kecil ini dan gunakan seperti ini:
$('div').scrollTo(500);
sumber
Oke teman-teman, ini solusi kecil, tetapi berfungsi dengan baik.
misalkan kode berikut:
Anda inginkan ketika sebuah posting baru ditambahkan ke 'the_div_holder' kemudian gulirkan konten dalamnya (.post div itu) ke yang terakhir seperti obrolan. Jadi, lakukan hal berikut setiap kali .post baru ditambahkan ke pemegang div utama:
sumber
Pertama, dapatkan posisi elemen div hingga yang ingin Anda gulir dengan metode jQuery position ().
Contoh: var pos = $ ("div"). Position ();
Kemudian dapatkan koordinat (tinggi) elemen itu dengan metode " .top ".
Contoh: pos.top;
Kemudian dapatkan koordinat x dari elemen div itu dengan metode " .left ".
Metode-metode ini berasal dari penentuan posisi CSS.
Setelah mendapatkan koordinat x & y, maka kita dapat menggunakan scrollTo (); metode.
Metode ini menggulir dokumen hingga tinggi & lebar tertentu.
Dibutuhkan dua parameter sebagai koordinat x & y. Sintaks: window.scrollTo (x, y);
Kemudian, cukup lewati koordinat x & y dari elemen DIV dalam fungsi scrollTo () .
Lihat contoh di bawah ini ↓ ↓
sumber
Tidak perlu terlalu ini. Cukup tambahkan div id ke href dari tag <a>
Seperti itu.
sumber