小编rdo*_*720的帖子

100vw导致水平溢出,但只有多于一个?

说你有这个:

html, body {margin: 0; padding: 0}
.box {width: 100vw; height: 100vh}

<div class="box">Screen 1</div>
Run Code Online (Sandbox Code Playgroud)

你会得到一些填充屏幕的东西,没有滚动条.但添加另一个:

<div class="box">Screen 1</div>
<div class="box">Screen 2</div>
Run Code Online (Sandbox Code Playgroud)

您不仅可以获得垂直滚动条(预期),还可以获得轻微的水平滚动条.

我意识到你可以省略宽度,或者将其设置为宽度:100%,但我很好奇为什么会发生这种情况.是不是100vw应该是"100%的视口宽度"?

css

69
推荐指数
3
解决办法
5万
查看次数

iphone/ipad触发意外的调整大小事件

我正在开发我的网站的移动版本.我尽可能地使用媒体查询和CSS,但我也使用一些javascript,例如,将我的导航转换为较小设备上的折叠/展开列表以节省空间.

为了处理所有这些,我试图使用window.resize事件.这样可以在桌面浏览器调整大小时实现魔力,但是当我不期待它们时,我会在iPad/iPhone上调整大小.

在桌面浏览器上,如果我实际调整窗口大小,我只会收到调整大小事件.在移动浏览器上,当我更改方向(预期)时,我会收到调整大小事件,但是当我切换到展开/折叠某些内容时,我也会得到它.

这是一个简单的例子:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<title>Resize test</title>
<style>
.box {height: 10000px; background: green; display: none;}
</style>
<script>
$(function(){
    $(".opener").click(function(){
        $(".box").slideToggle();
    });
    $(window).resize(function(){
        alert("resized");
    });
});
</script>
</head>

<body>
<a href="#" class="opener">Open/close me</a>
<div class="box"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

单击桌面浏览器上的链接时,不会发出警报.点击iPhone/iPad上的链接,即可获得提醒.这是怎么回事?

javascript css iphone mobile jquery

53
推荐指数
2
解决办法
3万
查看次数

Stripe Checkout 网络钩子不通过客户电子邮件?

我在测试模式下使用 Stripe 的 Checkout。我试图在 Stripe 中获取客户的 ID 以及他们在结账时提供的电子邮件以更新我的数据库。

我为 checkout.session.completed 设置了一个 webhook。如果我发送测试 webhook,则会填写 id,但不会填写 customer_email。

我想也许测试 webhook 不会传递该信息,所以我填写了结帐表格。我得到的 id 很好,但 customer_email 为空。

我猜我只是不明白与 Stripe 互动的正确方式。


// straight from Stripe's documentation
try {
  $event = \Stripe\Webhook::constructEvent(
    $payload, $sig_header, $endpoint_secret
  );
} catch(\UnexpectedValueException $e) {
  // Invalid payload
  http_response_code(400);
  exit();
} catch(\Stripe\Exception\SignatureVerificationException $e) {
  // Invalid signature
  http_response_code(400);
  exit();
}

// Handle the checkout.session.completed event
if ($event->type == 'checkout.session.completed') {
  $session = $event->data->object;

  // Fulfill the purchase...
  handle_checkout_session($session);
}

http_response_code(200);

// my …
Run Code Online (Sandbox Code Playgroud)

php stripe-payments

5
推荐指数
1
解决办法
572
查看次数

您如何在浏览器开发人员工具中查看/调试 :before 和 :after ?

我正在尝试在开发人员工具中查看/编辑 :after 元素的样式。

如何找到::before::after伪元素相关的规则?

css browser developer-tools pseudo-element

4
推荐指数
1
解决办法
1125
查看次数

父级上的事件,单击子级(事件冒泡)

我有一个人员搜索脚本,可以在您键入时显示建议。结果的结构大致如下:

<div  id="peopleResults">
  <div class="resultHolder">
    <div data-userid="ABC123" class="person">
        <div class="name">Last, First</div>
        <div class="title">Job Title</div>
        <a class="email" href="mailto:person@company.com">person@company.com</a><span class="phone">12345</span>
    </div>
    <!-- more people... -->
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

由于人员列表会在您键入时发生更改,因此到目前为止,我一直在使用 JQuery 的 live() 函数将单击事件自动绑定到所有 .person 元素。这是已弃用且不好的做法,因此我正在尝试更新代码。

我发现我可以使用类似的东西:

$('#peopleResults').on('click', '.person', function(){
    // handle the click
})
Run Code Online (Sandbox Code Playgroud)

但我想更多地了解如何在普通 JavaScript 中处理这个问题。我认为,当通过单击事件单击某个项目的子项时,该事件会在元素中“冒泡”,并且当它击中 .person 元素时我可以捕获它。请原谅草率的代码,但类似:

document.getElementById('peopleResults').addEventListener('click', function(e){
    if(e.target.classList.contains('person')) {
        // handle click 
    }
});
Run Code Online (Sandbox Code Playgroud)

我过去做过类似的事情,但通常带有链接。(在这种情况下,.person 不能是链接,因为它包含电子邮件链接。)

所以在这种情况下它不起作用。如果我单击 .person 中的 .name,则目标是 .name。

这似乎是一些基本的东西,但我却没有想到。JavaScript 中处理这个问题的典型方法是什么?

javascript jquery jquery-events

2
推荐指数
1
解决办法
6078
查看次数