小编Car*_*rlo的帖子

如何通过mailchimp API存储生日?

我通过这个库在 Codeigniter 应用程序中使用 mailchimp 1.3 。

我有这段代码:

$birthday = date('m/d', strtotime('1984-04-29');
echo $birthday;
$merge_vars = array(
'FNAME'=> $profile_info['name'], 
'LNAME'=> $profile_info['lastname'], 
'birthday' => $birthday,
'GROUPINGS' => array(array('name' => $this->group_name, 'groups' => $this->group1))
);

$this->mail_chimp->listSubscribe($this->list_id, $email, $merge_vars);
Run Code Online (Sandbox Code Playgroud)

订阅有效,在 mailchimp 的管理面板中我可以看到用户名和姓氏,但看不到生日。

在 api 文档中,它说它应该格式化为 MM/DD 并回显生日,我验证它是正确的。有什么建议么?

mailchimp

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

如何使用 javascript 或 jQuery 预加载具有多个 srcset 的图像?

我正在尝试为我正在开发的一个小型应用程序构建一个脚本来使用 jQuery 预加载图像。

我读过不同的教程,现在我设法让它像这样工作:

var imageList = ['img1.png', 'img2.png', 'img3.png'];
$.each(imageList, function (index, imageName) {
    var $img = $('<img>')[0];
    $img.onload = function () {
        console.log('loaded');
    };
    $img.src = imgPath + imageName;
}
Run Code Online (Sandbox Code Playgroud)

这工作正常。我从准备好的数组中加载图像,然后创建所有img标签,然后将它们附加到 DOM 中需要的地方。

不过,我现在想知道,如果我有多个srcset.

假设每个图像我有 3 个尺寸,但它们可能更多,通常我会在 html 中放置类似的内容:

<img srcset="large.jpg 1024w,
      medium.jpg 640w,
      small.jpg 320w"
   sizes="(min-width: 36em) 33.3vw, 100vw"
   src="small.jpg">
Run Code Online (Sandbox Code Playgroud)

现在,我该如何应用预加载呢?

1) 我可以在 Javascript 中预加载每个图像的所有大小,但这毫无意义,因为拥有多个 srcset 的全部目的是只加载一个 2) 我可以将img标签放在 DOM 中,让浏览器选择唯一的需要的大小并从 Javascript 加载。

第二个选项的问题是浏览器正在从 DOM 加载图像,那么为什么要在 Javascript 中再次加载它们呢?我可能完全错了,也许我错过了一些东西。正确的做法是什么?

javascript caching image preload

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

$refs 内的 ref 数组在 Mounted() 内取消定义

我正在开发一个简单的图像滑块组件。在模板中,我用来v-for创建img标签并ref保留对每个标签的引用。

Vue.component('slide', {
    template: `
    <div class="c-image-slider">
      <img ref="im" :key="image" class="c-image-slider__slide" v-for="image in images" :src="image">
    </div>
    `,
    data() {
      return {
        currentImage: 0,
        images: [],
      };
    },
    mounted() {
      this.images = images;
      console.log(this.$refs);
      console.log(this.$refs.im);
    },
  });
Run Code Online (Sandbox Code Playgroud)

在组件的钩子内,mounted()我试图记录this.$refs.im数组,但undefined结果是,尽管数组肯定在那里。我缺少什么?

这也是复制该问题的笔: https: //codepen.io/anon/pen/LQMMBK

javascript vue.js vue-component

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

如何创建IIFE Javascript模块的多个实例?

我正在处理一个巨大的JavaScript代码库,我正在尝试重新组织.我不是真正的专家,我刚开始研究良好的JavaScript编码实践.所以,我要做的一件事就是将模块中的所有代码分开.在这个特殊情况下,我正在尝试创建一个可以帮助我优化视频嵌入的模块.我想传递一个id的模块,并从中接收一些HTML代码或图像.

我不是把整个代码都放在这里,但这对于这个例子来说已经足够了:

var videoIframe = (function($) {
    'use strict';
     var id,

    setVideoId = function(videoId) {
        id = videoId;
        console.log(id);
    },
    getVideoThumbnail = function(videoId) {
        setVideoId(videoId);

    },
    test = function() {
        console.log(id)
    },
    getVideoEmbedCode = function() {

    };

    return {
       test: test,
       getVideoThumbnail: getVideoThumbnail
    };
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

在另一个模块中,我将它分配给两个变量:

    var video1 = videoIframe;
    var video2 = videoIframe;

    video1.getVideoThumbnail(123);
    video2.getVideoThumbnail(456);

    video1.test();
    video2.test();
Run Code Online (Sandbox Code Playgroud)

而且,当然,我没有达到我的预期.第二次getVideoThumbnail调用后,它始终打印456.

做一些研究我明白我正在创建一个单例,一个实例,而我只是在该实例中更改值.我想我的模块需要一个构造函数,但我不确定如何与IIFE模式一起创建它.这是正确的方法吗?

javascript iife

3
推荐指数
1
解决办法
1035
查看次数

将纹理应用于three.js中的多维数据集内部

我试图在内部的立方体的每个面上应用不同的图像.

我在这里有一个工作示例:http://codepen.io/anon/pen/mymOKe

我加载这样的图像:

var material = [
                new THREE.MeshLambertMaterial({
map: THREE.ImageUtils.loadTexture('http://placehold.it/512x512', {}, function(){ webGLRenderer.render(scene, camera); })
}),
                new THREE.MeshLambertMaterial({
map: THREE.ImageUtils.loadTexture('http://placehold.it/512x512', {}, function(){ webGLRenderer.render(scene, camera); })
}),
                new THREE.MeshLambertMaterial({
map: THREE.ImageUtils.loadTexture('http://placehold.it/512x512', {}, function(){ webGLRenderer.render(scene, camera); })
}),
                new THREE.MeshLambertMaterial({
map: THREE.ImageUtils.loadTexture('http://placehold.it/512x512', {}, function(){ webGLRenderer.render(scene, camera); })
}),
                new THREE.MeshLambertMaterial({
map: THREE.ImageUtils.loadTexture('http://placehold.it/512x512', {}, function(){ webGLRenderer.render(scene, camera); })
}),
                new THREE.MeshLambertMaterial({
map: THREE.ImageUtils.loadTexture('http://placehold.it/512x512', {}, function(){ webGLRenderer.render(scene, camera); })
})
];

var mesh = THREE.SceneUtils.createMultiMaterialObject(geom, new THREE.MeshFaceMaterial(material));

mesh.doubleSided = true; …
Run Code Online (Sandbox Code Playgroud)

texture-mapping three.js

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

使用GSAP动画模糊滤镜

我想使用GSAP创建某种缩小动画效果。我想要做的是将元素从其大小的两倍缩放到正常大小,然后消失blur filter。过滤器应从开始blur(15px)并向下到blur(0)

我以为我可以这样:

var el = $('img');

TweenLite.set(el, {
  'webkitFilter': 'blur(15px)',
  scale: 2
});
TweenLite.to(el, 0, {
  autoAlpha: 1,
  delay: 1.75,
  ease: Power2.easeIn
}); 
TweenLite.to(el, 2, {
  'webkitFilter': 'blur(0px)',
  scale: 1,
  delay: 1.7,
  ease: Power2.easeIn
});
Run Code Online (Sandbox Code Playgroud)

相反,发生的事情是blur(0)立即应用。

这是显示问题的简单。我究竟做错了什么?

javascript blur gsap

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

在PHP中合并2个数组,仅保留第一个数组中的键

我有这两个数组:

$list = [
    'fruit' => [],
    'animals' => [],
    'objects' => [],
];

$dataArray = [
    'fruit' => 'apple',
    'animals' => ['dog', 'cat'],
    'asd' => 'bla'
];
Run Code Online (Sandbox Code Playgroud)

我要合并它们,以便最后的$ list是:

[fruit] => Array
    (
        [0] => apple
    )

[animals] => Array
    (
        [0] => dog
        [1] => cat
    )

[objects] => Array
    (
    )
Run Code Online (Sandbox Code Playgroud)

因此,注意事项:

  1. 即使'fruit'只有一个元素,它仍然是$ list中的数组
  2. $ list中缺少的键(“ asd”键)将被忽略
  3. 即使没有值,没有值的键也会保留

使用array_merge不起作用:

$merged = array_merge($list, $dataArray);

[fruit] => apple
[animals] => Array
    (
        [0] => dog
        [1] => cat
    ) …
Run Code Online (Sandbox Code Playgroud)

php arrays array-merge

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

现在调用未定义的函数()

我在我正在研究的网站中使用Ion Auth库进行身份验证系统.它没有任何问题,但从昨天起我收到此错误:

PHP Fatal error:  Call to undefined function now() in /home/carlo/public_html/website/application/models/ion_auth_model.php on line 996
Run Code Online (Sandbox Code Playgroud)

该行中的代码是这样的:

        $this->db->update($this->tables['users'], array('last_login' => now()), array('id' => $id));
Run Code Online (Sandbox Code Playgroud)

我读到now()是一个mysql函数,在php中你应该使用date(),但我觉得奇怪的是,在库里有一个不存在的函数.知道这里发生了什么吗?

php authentication codeigniter ion-auth

0
推荐指数
1
解决办法
6149
查看次数