У меня есть HTML страница с div
. Если я тестирую его на JS Fiddle, например, если я открываю div
сверху страницы или даже если я прокручиваю вниз и открываю оттуда, он открывается перед экраном.
См. Ниже код - нажмите show
, hide
, прокрутите вниз, и вы можете увидеть ту же кнопку внизу, нажмите на них, чтобы открыть / закрыть <div class="custom-menu">...</div>
.
$(".showhide-menu li").unbind().click(function() {
switch ($(this).attr("data-action")) {
case "show":
$(".custom-menu").show();
break;
case "hide":
$(".custom-menu").hide();
break;
}
});
.custom-menu {
display: none;
z-index: 1000;
position: fixed;
top:20%; right:50%;
background-color: #fff;
border: 1px solid #ddd;
overflow: hidden;
width: 120px;
white-space: nowrap;
font-family: sans-serif;
-webkit-box-shadow: 2px 2px 7px 0px rgba(50, 50, 50, 0.5);
-moz-box-shadow: 2px 2px 7px 0px rgba(50, 50, 50, 0.5);
box-shadow: 2px 2px 7px 0px rgba(50, 50, 50, 0.5);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='custom-menu'>
<li>Menu</li>
<li data-action = "first">Clone</li>
<li data-action = "second">Remove</li>
<li data-action = "third">Edit</li>
</div>
<ul class='showhide-menu'>
<li data-action = "show">Show</li>
<li data-action = "hide">Hide</li>
</ul>
<div>
Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world.......... Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world..........
</div>
<ul class='showhide-menu'>
<li data-action = "show">Show</li>
<li data-action = "hide">Hide</li>
</ul>
Когда я пытаюсь сделать то же самое в ioni c, div всегда открывается на page top
(представьте, что я прокрутил вниз), а не перед экраном. Ниже мой код:
home.html
<ion-content (ionScroll)="getScrollTop()">
<div class='custom-menu'>
<li>Menu</li>
<li data-action = "first">Clone</li>
<li data-action = "second">Remove</li>
<li data-action = "third">Edit</li>
</div>
<ul class='showhide-menu'>
<li data-action = "show">Show</li>
<li data-action = "hide">Hide</li>
</ul>
<div>
Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world
</div>
<ul class='showhide-menu'>
<li data-action = "show">Show</li>
<li data-action = "hide">Hide</li>
</ul>
</ion-content>
home.ts
import { Component,ViewChild } from '@angular/core';
import { Content, AlertController } from 'ionic-angular';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
declare var $: any;
/**
* Generated class for the TestdivPage page.
*
* See https://ionicframework.com/docs/components/#navigation for more info on
* Ionic pages and navigation.
*/
//@IonicPage()
@Component({
selector: 'page-testdiv',
templateUrl: 'testdiv.html',
})
export class TestdivPage {
@ViewChild(Content) content: Content;
public scrollPost: number = 0;
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
ionViewDidLoad() {
$(".custom-menu").hide();
$(".showhide-menu").show();
console.log('ionViewDidLoad TestdivPage');
}
ngOnInit()
{
$(".showhide-menu li").unbind().click(function() {
switch ($(this).attr("data-action")) {
case "show":
$(".custom-menu").show();
break;
case "hide":
$(".custom-menu").hide();
break;
}
});
}
getScrollTop() {
this.scrollPost = this.content.scrollTop;
console.log(this.scrollPost);
}
}
home.scss
.custom-menu {
display: none;
z-index: 1000;
position: fixed;
top:20%; right:50%;
background-color: #fff;
border: 1px solid #ddd;
overflow: hidden;
width: 120px;
white-space: nowrap;
font-family: sans-serif;
-webkit-box-shadow: 2px 2px 7px 0px rgba(50, 50, 50, 0.5);
-moz-box-shadow: 2px 2px 7px 0px rgba(50, 50, 50, 0.5);
box-shadow: 2px 2px 7px 0px rgba(50, 50, 50, 0.5);
}
Как я могу преодолеть эту проблему?